home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-05-10 | 14.5 KB | 316 lines | [TEXT/MPS ] |
- Changes leading to version 3.3
-
- 1) "Better" handshaking for MODEM7 batch transfers (5/19/87).
-
- 2) If reception of a file is aborted due to errors, delete incomplete file
- (5/19/87).
-
- 3) If an "impossible" tty speed is detected, assume 1200 bps (5/19/87).
-
- 4) Disallow CAN-CAN abort during file send or receive except at beginning of
- file transfer (during batch transfers, CAN-CAN abort is allowed at beginning
- of each file transfer) (5/19/87).
-
- 5) Uncouple total allowed errors during the reception of a single packet
- (ERRORMAX, now made 10) and errors allowed when starting transfer (STERRORMAX,
- set to 10) (5/19/87).
-
- 6) Fix some bugs when receiving an empty file and when a phase error occurs
- during a file reception (5/19/87).
-
- 7) Portability fix in prtime and projtime; they also handle pathological
- cases better (5/19/87).
-
- 8) During file reception an EOT is not believed unless it is sent again in
- response to a NAK (5/25/87).
-
- 9) Modified cpm_unix and unixify so a filename without an extension will not
- have a trailing dot in its filename after being received in a MODEM7 or
- YMODEM batch transfer (5/25/87).
-
- 10) Allowable errors during transmission of a single packet now set to
- ERRORMAX (5/27/87).
-
- 11) When transferring a binary file, the YMODEM file length field is filled
- in on transmit and (if present) used to truncate the file on reception.
- A new truncate function (truncfile) added to getput.c to do the deed (5/28/87).
- The file mode field is also set but is ignored on file reception.
-
- 12) In a batch receive (xmodem -rt), program can be forced into checksum mode
- by specifying the "M" flag indicating a MODEM7 transfer (5/30/87).
-
- 13) Changed the "B" option to "M" to indicate MODEM7 batch. Made all option
- flags case insensitive. Command line is now recorded in the log file
- (5/30/87).
-
- 14) The "KND/IMP" convention of using "CK" to invoke 1K packets during YMODEM
- batch transfers was installed. This code will be sent during a batch receive
- if "K" is included on the command line unless "M" is also present. This code
- will be recognized when sending under all circumstances (5/30/87).
-
- ------------------------------------------------------------------------------
-
- Changes leading to version 3.4
-
- 1) Fix usage message (10/2/87).
-
- 2) Sender will now try up to 10 times (EOTMAX) to send an EOT to terminate a
- transmission. Used to be 5 times, but Chuck Forsberg's "official" minimum
- requirements for YMODEM mandate 10 (10/2/87).
-
- 3) Handle YMODEM file modification times if present in header on reception of
- both binary and text files (10/2/87). Retracted when can't seem to get
- proper times when playing with dsz (10/3/87). Found bug and reinstalled
- feature (10/16/87). Found REAL bug (10/21/87).
-
- 4) Null bytes are now stripped out of files when received as text files (MEX
- doesn't seem to want to put in the terminating control-Z) (10/3/87).
-
- 5) Slightly modified terminal parameter setting to explicitly turn off CRMOD
- and to flush read queue; ideas stolen from Kermit. Will it fly on Pyramid?
- (10/3/87).
-
- 6) Decreased time between "startup" characters sent when starting a file
- receive operation. This should increase perceived response. Now waits
- WAITFIRST seconds (set to 1) instead of 6 (waits for 5 seconds for
- subsequent packets. STERRORMAX now 60, CRCSWMAX now 30.
- Timeouts on 1st sector no longer reported in log (10/5/87).
-
- 7) Once again played with kernel sleeps in readbuf() (packet reading
- routine). On busy system could cause real problems. Now supply flag (t)
- to suppress sleeping on Too Busy systems. No longer suppress sleep when
- speeds are over 4800 bps. Sleep kludge DOES help: on an empty 750 running
- 4.3BSD, a file reception at 2400 bps used 6% of the CPU with the sleep
- kludge and 24% without it (data transfer rates were the the same)
- (10/5/87).
-
- 8) Actually count characters as they are being read for a file reception.
- When YMODEM file length is set, stop writing characters when reach length.
- This will allow YMODEM file lengths to work for text files and the
- elimination of truncfile() in getput.c (which was impossible for SYS V)
- (10/5/87).
-
- 9) Another attempt at tty modes. Now do nothing but set speeds, set mode to
- raw, and turn off echoing and tandem (10/6/87).
-
- ------------------------------------------------------------------------------
-
- Changes leading to version 3.5
-
- 1) Following the suggestion of Bill Carpenter (ho5cad!wjc), I changed every
- printf("") to fprintf(stderr, "") so one can use xmodem on either end of unix
- to unix link. (3/24/88).
-
- 2) Again, thanks to Bill Carpenter, corrected typo in stamptime() in
- getput.sysv.c (3/24/88).
-
- 3) Thanks to Steve Lebowitz (prcpto!pdvshl), fixed a && that should have been
- a & in getput.sysv.c (3/25/88).
-
- 4) Thanks to Leo Pilachowski, who managed to fool xmodem by "preplacing" ACKS
- in the VAX's input queue (improves throughput by 20%, says Leo, but makes
- error recovery a tad dicey...!). Implemented a flushin() function in
- getput.c to flush any pending characters. flushin is called in send.c just
- after sending a packet to make sure a proper ACK or NAK is received (I hope
- fast machines don't beat me to it and get their ACKS flushed!). In
- receive.c, flushin is called prior to the "startup" characters, prior to
- sending the packet acknowledgment ACK and prior to the NAK prompting for
- confirming EOT. Now how does one implement flushin() on Sys V? (3/25/88).
-
- 5) Fixed pair of bugs in send.c: YMODEM test enforcing CRC was testing
- number of attempts against STERRORMAX instead of ERRORMAX (also shortened
- timeout interval on this read) and a "timeout" during packet send was not
- noticed (due to a > instead of a >=) thus program started sending EOTs which
- further delayed abort (3/28/88).
-
- 6) Modified send.c and cpmify function in batch.c to strip path names on file
- names transmitted as part of YMODEM batch (3/28/88).
-
- 7) Hacked receive.c to make end of loop processing clearer and improve
- garbage flushing when errors are detected (3/28/88).
-
- 8) Pulled out of decision restricting YMODEM batch send to use CRC only. Will
- now gladly use checksum if told to and will respond to NAK as well as the
- proper C when starting up data transfer (3/28/88). Turns out this patch fixes
- problem with Red Ryder (4/10/88).
-
- 9) Tested MODEM7 batch against MEX-PC. Confirmation of EOT during filename
- transmission was not working, so xmodem wasn't shutting down a MODEM7 batch
- receive. Removed code to NAK first EOT and wait for second EOT in MODEM7
- filename transfers (3/28/88).
-
- 10) Added code to count number of newlines in a text file to get an accurate
- file size. I thought it would take too long; but seems to be quite nimble
- (see countnl in getput.c). We now transmit YMODEM file length and mode
- information for text as well as binary files (3/29/88).
-
- 11) After a YMODEM file name packet was received, forgot to reset "wait" time
- for receiving first character of data packet which definitely slowed
- perceived performance. (See note 6 for v. 3.4). Fixed (4/7/88).
-
- ------------------------------------------------------------------------------
-
- Changes leading to version 3.6
-
- 1) Added two new major commands (sa and ra) to send and receive text files
- for Apple Macintoshs which use CR as EOL character instead of the MS/DOS CR
- LF pair. Thanks to Dave Nowak (djnowak@iseesun.DPL.SCG.HAC.COM) for the
- inspiration (4/11/88).
-
- 2) Experiences with Red Ryder 10.3. Fixed botch in receive.c that led to an
- infinite loop when a checksum failed on YMODEM file name packet. Now have
- seperate variables for packet errors and "startup" errors. Prevent CRC to
- checksum switch during receive startup if YMDMBAT flag is true. This insures
- that no such transition will ever take place on second or subsequent file
- transfer; can be set on first file by including Y option on command line. No
- longer print "0" expected sectors if both YMODEM file length and KMD file
- length are both 0 (4/12/88).
-
- 3) Cleaned up ifs in readbuf. Removed void declaration on flushin (will
- break 4.2BSD compiler?). Corrected "number of sent sectors" on YMODEM
- transfer (was counting filename packet) (4/12/88).
-
- 4) More experiences with Red Ryder. Removed line flush before every CRCCHR
- or NAK trying to start a receive (RR YMODEM batch send to the VAX now seems
- to work). Fixed KMD "1K reception flag" to work properly on a receive.
- Added a flushin just before program exits in a futile effort to eliminate
- RR's nasty habit of sending a final EOT down the line. Rearranged
- variables in send.c so longpackets requested by the KMD flag are not
- "sticky" from file to file in a batch. RR is a real DOG: only gets about 133
- cps when downloading to a Mac over a 9600 bps line! (4/14/88).
-
- ------------------------------------------------------------------------------
-
- Changes leading to version 3.7
-
- 1) More strange and wonderful PC xmodem programs! Dave Jaksha's program
- won't send send another EOT when first EOT is NAKed. Raised timeout
- threshold from 3 to 5 seconds and fixed silly bug in receive.c that prevented
- any more NAKs from being sent in this situation (5/10/88).
-
- ------------------------------------------------------------------------------
-
- Changes leading to version 3.8
-
- 1) Added some fields to YMODEM filename record as per Forsberg's revised
- spec. Correct some nits in the way the filename record is handled (11/1/88).
-
- ------------------------------------------------------------------------------
-
- Changes leading to version 3.9
-
- 1) Better debug message about "packet starting" (10/17/90).
-
- 2) Added debug error message when readbyte times out (10/17/90).
-
- 3) Now flush input before ACK of received YMODEM filename packet.
- (Will this break Red Ryder? Tough.) (10/17/90).
-
- 4) Now explicitly, after receiving YMODEM filename packet, send NAK or
- CRCCHR. Also, check that output file can be opened before ACKING receipt
- of YMODEM file name packet. Both these are required by "True" YMODEM spec.
- Also, I think this may cure some of the problems seen with various programs
- trying YMODEM batch transfers. (10/17/90).
-
- 5) Added some status messages to be printed to stderr under control of the -P
- flag so we can tell the progress of a transfer when invoked with the "~C"
- command of SunOS tip. Also added -W flag to slow startup handshake so
- funny characters don't trash input while one is typing the "~C" command string
- (via TIPDELAY define, set to 15 seconds). Utilizes new tlogit and tlogitarg
- macros. (10/18/90).
-
- 6) Made a failure to change the mode bits of the tty a non-fatal error
- since, in some systems, uucp owns the device. Also allows someone who has
- su'd to run Xmodem (10/24/90).
-
- 7) Changed error messages about transmissions being canceled "at user's
- request" to "by CAN-CAN" (10/26/90).
-
- 8) Go hog-wild with options! Added "e" option to suppress EOT verification
- when receiving files (should make some brain-damaged PC programs work with
- xmodem). Added "n" option to allow CAN-CAN aborts any time during a file
- transfer and not just at the beginning. (10/29/90).
-
- 9) Added a one-liner function (stopsig) to getput.c to ignore keyboard stop
- signals so stray ^X characters absorbed during an abort don't put xmodem
- into background! (10/31/90).
-
- 10) Added support for YMODEM-G variant of YMODEM via the "g" flag.
- (11/1/90).
-
- 11) Made the "cm" option combination on a receive command force checksum
- "handshaking" during file-name negotiations and CRC-16 use during file
- transfer. Why am I still worried about MODEM7? (11/1/90).
-
- 12) Revised some status messages to indicate that the option (CRC, 1K
- packets, YMODEM-G) were invoked from the command line rather than through
- "protocol negotiation." (11/1/90)
-
- 13) Don't send "start-up handshake" character when you get a fatal error in a
- data block! (11/2/90)
-
- 14) Try to REALLY flush input when die with fatal error in data block.
- Trying YMODEM-G receptions on a very busy VAX 750 shows up some problems!
- (11/2/90).
-
- 15) Include a date in the version banner: Version 3.9 (November 1990).
- (11/5/90).
-
- ------------------------------------------------------------------------------
-
- Changes leading to version 3.10
-
- 1) New Makefile courtesy Vikas Aggarwal (aggarwal@nisc.jvnc.net). His
- version used mkdep to determine dependencies, I explicitly put in the
- dependencies to avoid use of mkdep and cluttering up Makefile with
- /usr/include/whatever. (11/13/90).
-
- 2) Added version.h with VERSION definition so I don't have to change xmodem.h
- and hence recompile everything when I change the version date. (12/10/90).
-
- 3) Added reallyflush() function to misc.c to wait for all activity on line to
- clear (replaces flushin + a while loop). Added reallyflush call in receive.c
- to case of invalid packet number checksum. (12/12/90).
-
- 4) Added timeout time to TIMEOUT debug message in readbyte. (12/12/90).
-
- 5) Made "Can't flush terminal queue" in getput.c a non-fatal error (12/14/90).
-
- 6) Made note in manual page about needed "/bin/stty -istrip" on MIPS
- systems running RISC/os. Why does "istrip" affect even raw mode?
- (12/14/90).
-
- 7) Mask checksum values read from datastream to 8-bits so TIMEOUTS won't look
- even funnier than they have to. (12/20/90).
-
- 8) Added new MOREDEBUG category of error logging (invoked by two x's in the
- option string). First use of MOREDEBUG in getput.c to list EVERY character
- read in a data packet. (12/20/90).
-
- 9) Made another note in manual page about MIPS systems. The really need
- "/bin/stty -istrip -ixon" so 8-th bit is stripped and X-OFF characters aren't
- eaten (even in raw mode!). (12/20/90).
-
- 10) Kit Bingham was having trouble with Versaterm uploads. Apparently,
- Versaterm couldn't respond fast enough to the initial handshake characters
- Xmodem was sending down the line. I modified receive.c to increment the
- amount of time between sending the handshake characters (variable firstwait)
- by one second each timeout. I also properly parameterized the timeout period
- allowed between data packets (as PACKWAIT = 5) and reset the startup error
- count after a YMODEM filename packet. (1/4/91).
-
- ------------------------------------------------------------------------------
-
- Thanks to Keith Peterson (w8sdz@simtel20.arpa), John Rupley
- (arizona!rupley!root), Emmet Gray (ihnp4!uiucuxc!fthood!egray), Bob
- Bickford (lll-crg!well!rab), Doug Moore (moore@svax.cs.cornell.edu), David
- Brown (jdb@ncsc.arpa), Bill Carpenter (ho5cad!wjc), Steve Lebowitz
- (prcpto!pdvshl), Leo Pilachowski, Dave Nowak
- (djnowak@iseesun.DPL.SCG.HAC.COM), David Elliott
- (pyramid!boulder!stan!dce), Benson Margulis (benson@odi.com), Kit Bingham
- (kb@umnstat.stat.umn.edu), Bob Bownes (beowulf!bownes), Bill Stubblebine
- (hplabs!hp-lsd!was), Chert Pellett (spdyne!root), Vikas Aggarwal
- (aggarwal@nisc.jvnc.net) and Chuck Forsberg's documents and ZCOMM/DSZ/rz/sz
- programs for ideas, suggestions and comments. Thanks to D'Anne Thompson
- for some nice code.
-